1. Field of the Invention
This invention relates in general to digitizing or data tablets (xe2x80x9cdigitizersxe2x80x9d) and in particular to interfacing digitizers to host computers, their operating systems and application programs.
2. Background Art
Digitizers are computer peripherals that translate a user""s hand motion into digital coordinates suitable for use by a computer system. This translation is performed within an X, Y and possibly Z coordinate system within the device comprising an electronic grid over which is placed a transducer. This transducer may be pen-shaped (xe2x80x9cstylusxe2x80x9d), rectangular or elliptical (xe2x80x9ccursorxe2x80x9d or xe2x80x9cpuckxe2x80x9d) containing one or more buttons. A microprocessor within the digitizer translates the position of the transducer on the grid into digital coordinates and reports its location and button status to the host computer via a communications link which is typically a stream of serial bits.
Information transmitted to the host computer is encapsulated in a specific format comprising multiple characters of data which are grouped into the button information and coordinates. Each transmission of this information is referred to as a xe2x80x9creport.xe2x80x9d Reports are sent either continuously or upon satisfaction of some defined combination of button states or distance moved. The rate at which reports are sent from the digitizer to the host computer varies considerably depending upon the particular digitizer, the specification of the button states or programmed configuration and may range up to several hundred times per second.
In addition to transmitting coordinate data to the host computer, digitizers often accept commands from the host computer governing the operating characteristics of the digitizer. These commands are usually encoded in individual characters which collectively comprise a command and its arguments. Examples of such commands include scaling the digitizers axis to an absolute value or resolution in counts per unit of measurement, selecting the rate at which reports are transmitted or specifying the type or format of information sent with each report.
Upon receipt of each character of data from the digitizer, the host system is interrupted from the task it was engaged in and processes the data by combining it with previous data characters until a complete report has been received. It then translates this data and takes appropriate action depending on the information contained in the report, e.g. button presses or releases or coordinate values. Such actions may include moving a visible cursor on the video display attached to the host computer or selecting some action depending on the location and status of one or more buttons.
Digitizers are frequently used to draw information into an application program or select some application command via a button press or release. The determination of which action to perform is decided within the host computer by translating the button state and location of the cursor into known areas of the video display or digitizing tablet. If the action is based on translation of the action to a location within the video display, it is often referred to as a xe2x80x9cmenu selection.xe2x80x9d Alternatively, if the translation is performed based on a location within the digitizer, it is referred to as a xe2x80x9ctemplate command.xe2x80x9d This latter method often requires a xe2x80x9ctemplatexe2x80x9d or physical menu positioned over the digitizer and depicting specific locations as menus or graphical images.
Regardless of the method used for translating the action, considerable computing time by the host processor is required which is often directly related to the number of locations within the video display or digitizer which must be tested and translated. This computing time reduces the amount of computing available to the host operating system or its application programs. Furthermore, in the event the translation is based upon locations within the digitizer, information pertaining to the specific digitizer such as its physical size and configuration must be used in the translation which often constrains the translation to a specific digitizer and requires a different methodology for each digitizer size and type.
Heretofore, efforts to provide template translations have been restricted to a small number of template areas and implemented as a series of computer instructions specific to the digitizer and the actual location of each menu location on the digitizer surface. These instructions may be executed by the microprocessor within the digitizer or by the host processor through the use of a dedicated translation application program. When done this way, these methods are referred to as xe2x80x9chard-codedxe2x80x9d templates and are determined at the time of digitizer manufacture or creation of the application program or template. Once created, these instructions are dependent upon the known digitizer attributes and the locations to be translated. Hence, they cannot be changed without redesigning the digitizer or recreating the application program on the host processor.
Hard-coded templates necessarily restrict template translation activities to the time of digitizer manufacture or creation of the application program by experienced computer professionals and do not afford the typical computer user the ability to modify or even create their own templates. Furthermore, such templates are restricted to the specific digitizer, are often expensive to develop or purchase and require considerable host processor computing time resulting in lower system throughput manifested by slower application response time.
The principal object of the present invention is to provide a method of defining, manipulating and processing large numbers of template locations on a digitizer in a manner which significantly reduces host processor computation. The templates may be created and changed dynamically by computer users and application programs and the application programs are not restricted to any specific digitizer or host processor.
In fulfillment and implementation of the previously recited object, a primary feature of the invention resides in the definition and methodology of an advanced digitizer interface (the xe2x80x9cInterfacexe2x80x9d) which allows the dynamic creation and manipulation of template areas non-specific to any digitizer or host processor. Embedded in this Interface is a defined methodology for translating digitizer-specific reports into virtual areas of the digitizer which are accessed as specific numbered regions. Each of these regions may possess various attributes which collectively permit the specification of individual coordinate systems or stored sequences of commands.
An additional feature of the invention includes a device-independent Interface to the digitizer which isolates the computer user or application program from a given digitizer""s attributes and permits creation of one set of instructions which may be executed across any number of digitizers or host processor systems. The invention includes a tablet addressing feature which allows many tablets to be connected to a single computer or a network of computers and operated independently of each other.
Finally, the preferred embodiment of the invention utilizes a dedicated microprocessor to implement this advanced digitizer Interface which significantly improves host processor throughput and application response time (the xe2x80x9cCircuitxe2x80x9d). This microprocessor may be implemented as either an input-output processor for the host system, dedicated external controller or a replacement to the digitizer microprocessor itself; the choice of which is governed by cost and performance considerations.